iT邦幫忙

2023 iThome 鐵人賽

DAY 12
0

為了解決拜占庭將軍問題(Byzantine Generals Problem),Leslie Lamport在論文中也有提出解決方案,像是拜占庭容錯協議(Byzantine Fault Tolerance, BFT)

拜占庭容錯協議是指在允許有錯誤的情況下,讓系統還能維持正常的運作,而這個錯誤的節點(將軍)數量,必須低於總數的三分之一,也就是當今天總共有N個節點、F個錯誤節點,則必須滿足 N≧3F+1。

簡單證明一下,先將問題分為兩個部分:
1.發出訊息的節點是正常的
2.發出訊息的節點是錯誤的

當發出訊息的節點是正常時,整個系統中至少會有N−F個正確的訊息,以及最多F個錯誤的訊息,這時如果系統要能正常運作(達成共識),正確訊息就必須要大於錯誤訊息,也就是 N−F>F。

而當發出訊息的節點是錯誤的時候,為了讓正常的節點分不清楚自己是否為錯誤的節點,它會分別傳送一半正確的訊息和一半錯誤的訊息,也就是(N−F)/2個正確訊息和(N−F)/2個錯誤訊息,另外還有F−1個不確定的訊息(錯誤的節點要想辦法讓共識無法達成),這時系統要能正常運作(達成共識),必須進一步對得到的訊息進行判定,詢問其他節點對於某個被懷疑是錯誤節點的訊息,最終可以得到 N>3F。

論文原文:https://lamport.azurewebsites.net/pubs/byz.pdf


上一篇
共識機制 (二)
下一篇
共識機制 (四)
系列文
不能不知的區塊鏈:入門指南30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言